API Gateway এবং Lambda ব্যবহার করে DocumentDB অ্যাক্সেস

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) Serverless এবং Lambda Integration |
229
229

Amazon API Gateway এবং AWS Lambda ব্যবহার করে আপনি DocumentDB তে সহজে অ্যাক্সেস করতে পারেন এবং এটি একটি serverless architecture তৈরি করতে সাহায্য করে। এই সমাধানটি বিশেষভাবে উপকারী যখন আপনি একটি RESTful API তৈরি করতে চান, যা অ্যাপ্লিকেশন বা ক্লায়েন্ট থেকে DocumentDB ডেটাবেসে ডেটা পাঠাতে বা পাওয়ার অনুমতি দেয়। API Gateway ক্লায়েন্ট রিকোয়েস্ট গ্রহণ করবে এবং Lambda ফাংশনটি DocumentDB এর সাথে ইন্টিগ্রেটেড হয়ে রিকোয়েস্ট প্রক্রিয়া করবে।


প্রয়োজনীয় উপকরণ

  1. Amazon API Gateway: API Gateway একটি fully managed service যা HTTP বা WebSocket API তৈরি এবং পরিচালনা করার জন্য ব্যবহৃত হয়।
  2. AWS Lambda: Lambda একটি serverless compute service যা কোড এক্সিকিউট করতে সক্ষম, এবং এটি API Gateway থেকে ট্রিগার হতে পারে।
  3. Amazon DocumentDB: DocumentDB MongoDB-এর সাথে সামঞ্জস্যপূর্ণ একটি managed NoSQL ডেটাবেস, যা ডকুমেন্ট-ভিত্তিক ডেটা সংরক্ষণ করে।
  4. IAM Roles: Lambda ফাংশন এবং API Gateway এর জন্য সঠিক অনুমতিসমূহ প্রদান করা।

১. Lambda ফাংশন তৈরি করা

Lambda ফাংশনটি DocumentDB-এর সাথে কাজ করতে সক্ষম হওয়ার জন্য, এটি DocumentDB Driver ব্যবহার করে MongoDB-এ কুয়েরি পাঠাতে সক্ষম হতে হবে।

Lambda ফাংশন তৈরি করা:

  1. Lambda ফাংশন তৈরি করুন:
    • AWS Management Console-এ যান এবং Lambda সিলেক্ট করুন।
    • "Create function" ক্লিক করুন এবং Author from scratch নির্বাচন করুন।
    • একটি নাম দিন এবং রuntime হিসেবে Node.js বা Python নির্বাচন করুন (MongoDB-এর জন্য সাধারণত Node.js ব্যবহার করা হয়)।
    • Execution role এর জন্য একটি নতুন IAM role তৈরি করুন, যাতে Lambda DocumentDB অ্যাক্সেস করতে পারে।
  2. MongoDB Node.js Driver ইনস্টল করুন: Lambda ফাংশনটি MongoDB বা DocumentDB ডেটাবেসের সাথে সংযোগ করতে MongoDB Node.js Driver ব্যবহার করবে। আপনি যদি Node.js ব্যবহার করেন, তাহলে নিচের মতো কোড ব্যবহার করতে পারেন:

    npm install mongodb
    
  3. Lambda কোড লিখুন:

    • Lambda ফাংশনের কোডে DocumentDB (MongoDB) থেকে ডেটা ফেচ বা ডেটা আপডেট করার জন্য MongoDB-এর Node.js ড্রাইভার ব্যবহার করা হবে।
    const { MongoClient } = require("mongodb");
    
    const uri = "mongodb://<username>:<password>@<documentdb-endpoint>:27017";
    const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
    
    exports.handler = async (event) => {
        const response = {
            statusCode: 200,
            body: JSON.stringify('Hello from Lambda!'),
        };
    
        try {
            await client.connect();
            const database = client.db("myDatabase");
            const collection = database.collection("myCollection");
    
            // Perform a read operation (for example, finding a document)
            const document = await collection.findOne({ "name": "John Doe" });
            response.body = JSON.stringify(document);
        } catch (error) {
            response.statusCode = 500;
            response.body = JSON.stringify({ error: error.message });
        } finally {
            await client.close();
        }
    
        return response;
    };
    
    • কোডে:
      • uri: এখানে আপনাকে আপনার DocumentDB-এর Endpoint এবং Port ব্যবহার করতে হবে।
      • Database: "myDatabase" নামক ডেটাবেস এবং "myCollection" নামক কলেকশনটি ব্যবহার করা হয়েছে। আপনি আপনার বাস্তব ডেটাবেস এবং কলেকশন নাম ব্যবহার করবেন।
  4. Lambda IAM Role: Lambda ফাংশনকে AWS DocumentDB অ্যাক্সেস করতে IAM role অনুমতি প্রদান করুন। Role-এ AmazonDocDBFullAccess পলিসি অ্যাটাচ করতে হবে।

২. API Gateway তৈরি করা

API Gateway ক্লায়েন্টদের জন্য একটি API প্রদান করবে, যা Lambda ফাংশনে রিকোয়েস্ট পাঠাবে। এই API তে HTTP রিকোয়েস্টগুলি চলে আসবে এবং Lambda ফাংশন সেই রিকোয়েস্ট হ্যান্ডেল করবে।

API Gateway Setup:

  1. API Gateway তৈরি করুন:
    • AWS Management Console থেকে API Gateway সিলেক্ট করুন।
    • "Create API" সিলেক্ট করুন এবং HTTP API অথবা REST API নির্বাচন করুন।
    • API এর নাম দিন এবং Create করুন।
  2. Lambda ফাংশন যোগ করা:
    • API Gateway এ Lambda ফাংশনটি যোগ করতে Integration নির্বাচন করুন এবং Lambda-কে ইনটিগ্রেট করুন।
    • আপনার Lambda function নির্বাচন করুন।
  3. API Endpoint Configurations:
    • API Gateway এর জন্য একটি HTTP endpoint তৈরি করুন, যেমন GET /fetchDocument বা POST /updateDocument যা Lambda ফাংশনকে কল করবে।
  4. Deploy API:
    • API তৈরি করার পর Deploy অপশনে ক্লিক করুন এবং একটি stage (যেমন prod বা dev) নির্বাচন করুন।
    • Deploy করার পর, আপনি একটি URL endpoint পাবেন, যা ক্লায়েন্টের কাছ থেকে HTTP রিকোয়েস্ট গ্রহণ করবে।

৩. Testing API Gateway

আপনার API Gateway সেটআপ সম্পন্ন হলে, আপনি HTTP রিকোয়েস্ট পাঠাতে পারবেন এবং Lambda ফাংশনটি DocumentDB এর সাথে কাজ করবে।

  • আপনি Postman বা cURL ব্যবহার করে আপনার API endpoint টেস্ট করতে পারেন।
  • উদাহরণস্বরূপ:

    curl -X GET https://<api-id>.execute-api.<region>.amazonaws.com/prod/fetchDocument
    

৪. Error Handling এবং Logging

  • Error Handling: Lambda ফাংশনে ত্রুটি ব্যবস্থাপনা গুরুত্বপূর্ণ। আপনি try-catch ব্লক ব্যবহার করতে পারেন এবং ত্রুটি বার্তা ক্লায়েন্টকে ফিরিয়ে দিতে পারেন।
  • CloudWatch Logs: API Gateway এবং Lambda-এর লগ দেখতে Amazon CloudWatch ব্যবহার করুন। এটি ডিবাগ এবং মনিটরিং করার জন্য সহায়ক হবে।

৫. সুরক্ষা এবং অনুমতিসমূহ

  • IAM Roles: API Gateway এবং Lambda-এর জন্য সঠিক IAM Roles ব্যবহার করুন, যা AWS DocumentDB অ্যাক্সেস করতে অনুমতি দেয়।
  • Authorization: API Gateway-তে AWS IAM Authorization অথবা Cognito Authorizer সেট করতে পারেন, যা নিরাপত্তা বৃদ্ধি করবে।

Conclusion

API Gateway এবং Lambda ব্যবহার করে Amazon DocumentDB অ্যাক্সেস করা একটি serverless এবং স্কেলেবল সমাধান। API Gateway ক্লায়েন্টের HTTP রিকোয়েস্ট গ্রহণ করে, যা Lambda ফাংশন দ্বারা প্রক্রিয়াজাত হয় এবং তারপর DocumentDB এর সাথে ইন্টারঅ্যাক্ট করে। এই সেটআপটি নিরাপদ, ফ্লেক্সিবল, এবং অত্যন্ত স্কেলেবল, যা আপনার অ্যাপ্লিকেশনের জন্য API তৈরি করতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion